/*
 * PPMC.h
 *
 *  Created on: 11/06/2013
 *      Author: juan
 */

#ifndef PPMC_H_
#define PPMC_H_
#include "./Modelo.h"
#include "./Modelo_0.h"
#include "../../Utilidades/Constantes.h"
#include "../Aritmetico/Aritmetico.h"
#include <map>
#include <list>
#include <stdio.h>
#include <string.h>

class PPMC {
private:
	string contexto;
	int ultimo_modelo;
	Aritmetico* compresor;
	Modelo* modelos[ORDEN_PPMC+2];
	void comprimir(char* caracter);
	Caracter* descomprimirCaracter();
	void finalizar();
public:
	PPMC();
	void comprimirBuffer(char *buffer, int largo,char **compresion,int *largo_compresion);
	void descomprimirBuffer(char *buffer, int largo,char **descompresion,int *largo_descompresion);
	virtual ~PPMC();


};

#endif /* PPMC_H_ */
